package com.example.demo.mapper;

import com.example.demo.entity.UserEntity;
import org.apache.catalina.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-05-25
 * Time: 11:17
 */

@Mapper
public interface UserMapper {
    // 此处实现一个查询操作
    // 接口中默认是 public 方法, 可以不写
    List<UserEntity> getAllUser();

    // 根据 id 查询用户
    UserEntity getUserById(@Param("id") Integer id);

    // 根据用户名查询用户
    UserEntity getUserByName(@Param("username") String username);

    // 根据用户名和密码正确登陆后查询当前用户
    UserEntity login(UserEntity user);

    // 根据用户 id 修改密码
    //int updatePassword(@Param("id") String id, @Param("newPassword") String password);

    // 新增用户 - 只添加用户名和密码 其余字段不添加
    int insertUser(UserEntity user);

    // 新增用户 - 只添加用户名和密码, 并且返回自增主键
    int insertUserAndId(UserEntity user);

    // 删除指定 id 用户
    int deleteUser(@Param("id") Integer id);

    // 根据用户名模糊匹配用户
    List<UserEntity> getUserOfLikeName(@Param("username") String username);

    // 根据是否有 photo 字段新增用户
    int insertUserByPhoto(UserEntity user);

    // 根据 photo 和 state 是否传递为条件查询用户
    int insertUserByPhotoAndState(UserEntity user);
}
